/*
 * SocketHandler.h
 *
 *  Created on: 2013. 7. 23.
 *      Author: ncanis
 */
#pragma once

#include "stdafx.h"
#include "IoBuffer.h"
#include "IoSession.h"

namespace TED {
/**
	@author ncanis
	@brief Socket Event Listener. 수신/송신/연결/끊어짐에 대해 이벤트를 수신한다.
*/
class IoSession; //to avoid circular dependencies among headers.
class IoBuffer;

class SocketHandler {
public:
	SocketHandler();
	virtual ~SocketHandler();

	virtual void Receive( IoSession& session,  IoBuffer& buf); // 메시지를 수신할때 호출된다.
	virtual void Exception( IoSession& session); // 해당 네트웍 세션에 오류가 발생될때 호출된다.
	virtual void Close(IoSession& session); // 세션 연결이 끊어지는경우 호출된다.
	virtual void Open(IoSession& session); // 세션 연결이 될경우 호출된다.
	virtual void Sent( IoSession& session, IoBuffer& buf); // 메세지 전송이 완료된후 호출된다.
};

} /* namespace ted */
